#include <iostream.h> // Zadanie 7.3
#include <fstream.h>
#include <conio.h>

const int n = 10;

class matrix // definicja klasy matrix
{
 public:
 int a[n][n], b[n][n], c[n][n];
 czytaj_dane(); // prototyp funkcji czytaj_dane()
 przetworz_dane(); // prototyp funkcji przetworz_dane()
 zapisz_dane_do_pliku(); // prototyp funkcji zapisz_dane_do_pliku()
 czytaj_dane_z_pliku(); // prototyp funkcji czytaj_dane_z_pliku();
};

matrix::czytaj_dane()
{
 int i, j;

 cout << "Tworzymy tablice a." << endl;

 for (i = 0; i < n; i++)
 {
  for (j = 0; j < n; j++)
  {
   if (i == 1)
	a[i][j] = 1;
   else
	a[i][j] = 0;
	cout << a[i][j] << " ";
  } // j
   cout << endl;
 }  // i
 // koniec wpisywania
}

matrix::przetworz_dane()
{
 int i, j;

 cout << endl;
 cout << "Przepisujemy elementy z tablicy a do tablicy b." << endl;
 for (i = 0; i < n; i++)
 {
  for (j = 0; j < n; j++)
  {
   b[i][j] = a[j][i]; // przepisujemy zawartosc tablicy a do tablicy b
  } // j
 } // i
}

matrix::zapisz_dane_do_pliku()
{
 int i, j;

 cout << "Zapisujemy tablice b do pliku dane.txt." << endl;

 ofstream plik_zapis("dane.txt"); // tworzymy i otwieramy plik do zapisu

 for (i = 0; i < n; i++)
 {
  for (j = 0; j < n; j++)
  {
   cout << b[i][j] << " ";
   plik_zapis << b[i][j] << endl; // zapisujemy tablice do pliku
  } // j
   cout << endl;
 }  // i
  // koniec zapisywania do pliku
 plik_zapis.close(); // zamykamy plik
}

matrix::czytaj_dane_z_pliku()
{
 int i, j;

 cout << endl;
 cout << "Odczytujemy tablice c z pliku dane.txt i wyswietlamy ja na ekranie." << endl;

 ifstream plik_odczyt("dane.txt"); // otwieramy istniejacy plik

 for (i = 0; i < n; i++)
 {
  for (j = 0; j < n; j++)
  {
   plik_odczyt >> c[i][j]; // odczytujemy tablice z pliku
   cout << c[i][j] << " ";
  } // j
   cout << endl;
 } // i
  // koniec odczytywania z pliku

 plik_odczyt.close(); // zamykamy plik
}

main()
{
 matrix matrix1; // powstaje obiekt matrix1

 matrix1.czytaj_dane();
 matrix1.przetworz_dane();
 matrix1.zapisz_dane_do_pliku();
 matrix1.czytaj_dane_z_pliku();

getch(); // czeka na nacisniecie dowolnego klawisza
}
